CYOA Wiki cyoawiki https://cyoa.miraheze.org/wiki/Main_Page MediaWiki 1.40.1 first-letter Media Special Talk User User talk CYOA Wiki CYOA Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Campaign Campaign talk Module Module talk Main Page 0 1 1 2023-06-01T19:17:50Z MediaWiki default 1 Create main page wikitext text/x-wiki __NOTOC__ == Welcome to {{SITENAME}}! == This Main Page was created automatically and it seems it hasn't been replaced yet. === For the bureaucrat(s) of this wiki === Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting. You can immediately start working on your wiki or whenever you want. Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links: * [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users) * [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]] * [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.) ==== I still don't understand X! ==== Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here: * [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]] * On [[phab:|Phabricator]] * On [https://miraheze.org/discord Discord] * On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat]) === For visitors of this wiki === Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later! 21236ac3f8d65e5563b6da6b70815ca6bf1e6616 4 1 2023-06-01T19:23:00Z Pasadena 2 Protected "[[Main Page]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki __NOTOC__ == Welcome to {{SITENAME}}! == This Main Page was created automatically and it seems it hasn't been replaced yet. === For the bureaucrat(s) of this wiki === Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting. You can immediately start working on your wiki or whenever you want. Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links: * [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users) * [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]] * [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.) ==== I still don't understand X! ==== Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here: * [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]] * On [[phab:|Phabricator]] * On [https://miraheze.org/discord Discord] * On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat]) === For visitors of this wiki === Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later! 21236ac3f8d65e5563b6da6b70815ca6bf1e6616 6 4 2023-06-01T19:45:31Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. c2a2028650e56d98dafeedda55212a7246ecbc9e 10 6 2023-06-01T20:01:38Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] 90b51b8ceaedabb2ed3dfca70c9b5abe231de1d4 11 10 2023-06-01T20:25:22Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quickstart == * [[Category:CYOAs]] ** [[Category:Static CYOAs]] ** [[Category:Interactive CYOAs]] * [[Category:Authors]] ** [[Category:Static Authors]] ** [[Category:Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] 35f0ff169eddae6f0ea07048308038c1ad338a9c 12 11 2023-06-01T20:27:02Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quickstart == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] 55b574bf688d4ab352a4690e1605eae99157bbe9 20 12 2023-06-01T20:49:04Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. 8fa1de622998b1af81c6b196813e1312b3a6995f 33 20 2023-06-01T21:41:25Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] cd9edbf0bedb4d5d802103afd50d205616961f7c 42 33 2023-06-01T21:55:49Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * [[Special:InfoboxBuilder|InfoboxBuilder]] 2cdb18c16fa64bc0e042006fbb1653cf7055baaa 45 42 2023-06-01T22:09:59Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes at [[Special:InfoboxBuilder|InfoboxBuilder]] df2b0dbc201c087710a4e4c4759ddf8495918102 46 45 2023-06-01T22:10:18Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 09b90f3a223d280692a74b52a8dbe2d10fae1cfc User:Pasadena 2 2 2 2023-06-01T19:21:56Z Pasadena 2 Created page with "Hi, my name is Pasadena and I'm the creator of this wiki. == Links and Contact == Github: https://github.com/upasadena Github Site: https://upasadena.github.io/ My CYOAs: https://upasadena.github.io/cyoas/ My Old Site: https://pasadena.neocities.org Email: underscore.pasadena@gmail.com Reddit: _pasadena Discord: Pasadena#9851" wikitext text/x-wiki Hi, my name is Pasadena and I'm the creator of this wiki. == Links and Contact == Github: https://github.com/upasadena Github Site: https://upasadena.github.io/ My CYOAs: https://upasadena.github.io/cyoas/ My Old Site: https://pasadena.neocities.org Email: underscore.pasadena@gmail.com Reddit: _pasadena Discord: Pasadena#9851 b86a42dfad9fb5693a8cdb09e0afe899a4d7f63c 3 2 2023-06-01T19:22:16Z Pasadena 2 /* Links and Contact */ wikitext text/x-wiki Hi, my name is Pasadena and I'm the creator of this wiki. == Links and Contact == Github: https://github.com/upasadena Github Site: https://upasadena.github.io/ My CYOAs: https://upasadena.github.io/cyoas/ My Old Site: https://pasadena.neocities.org Email: underscore.pasadena@gmail.com Reddit: _pasadena Discord: Pasadena#9851 c9f9944b1da2165f9c03d01d0ed91ff0a0dee78b 5 3 2023-06-01T19:41:47Z Pasadena 2 Protected "[[User:Pasadena]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki Hi, my name is Pasadena and I'm the creator of this wiki. == Links and Contact == Github: https://github.com/upasadena Github Site: https://upasadena.github.io/ My CYOAs: https://upasadena.github.io/cyoas/ My Old Site: https://pasadena.neocities.org Email: underscore.pasadena@gmail.com Reddit: _pasadena Discord: Pasadena#9851 c9f9944b1da2165f9c03d01d0ed91ff0a0dee78b MediaWiki:Citizen-footer-desc 8 4 8 2023-06-01T19:56:00Z Pasadena 2 Created page with "A wiki for CYOAs and their authors." wikitext text/x-wiki A wiki for CYOAs and their authors. 5e93e8795850a14d80aa984d7a54ced9400e6ca8 MediaWiki:Citizen-footer-tagline 8 5 9 2023-06-01T19:58:50Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:CYOAs 14 6 13 2023-06-01T20:27:23Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Static CYOAs 14 7 14 2023-06-01T20:28:35Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 CYOA Wiki:Copyrights 4 8 15 2023-06-01T20:29:16Z Pasadena 2 Created page with "Content is available under [https://www.gnu.org/licenses/fdl-1.3.en.html GNU Free Document License 1.3] unless otherwise noted." wikitext text/x-wiki Content is available under [https://www.gnu.org/licenses/fdl-1.3.en.html GNU Free Document License 1.3] unless otherwise noted. 30b26e698c4627cd29ae238b1c9b31478ddd415a Category:Interactive CYOAs 14 9 16 2023-06-01T20:29:43Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Authors 14 10 17 2023-06-01T20:30:53Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Static Authors 14 11 18 2023-06-01T20:31:05Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Interactive Authors 14 12 19 2023-06-01T20:31:14Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Template:Author 10 13 21 2023-06-01T21:01:38Z Pasadena 2 Infobox created with infobox builder. wikitext text/x-wiki <infobox><title source="name"><default>{{PAGENAME}}</default></title><image source="image"/><data source="aliases"><label>Aliases</label></data><title source="social_media"><default>Social Media</default></title><data source="reddit"><label>Reddit</label></data><data source="discord"><label>Discord</label></data><data source="github"><label>Github</label></data><data source="website"><label>Website</label></data><data source="cyoas"><label>CYOAs</label></data><data source="other_social_media"><label>Other</label></data></infobox> 3714284979b21d74b0bbc7df9636fa0fd513446c 22 21 2023-06-01T21:10:36Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoas"> <label>CYOAs</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 6d1ac81c56d2356a74caa6c3fbfb0077efa64cf0 23 22 2023-06-01T21:11:07Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoas"> <label>CYOAs</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 7c9651f405e05e217a7d070c578d330dad14027b 24 23 2023-06-01T21:11:37Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 47ef4f7cca4fc60cc1d8af1b04520634f5816698 26 24 2023-06-01T21:17:18Z Pasadena 2 wikitext text/x-wiki == Template code == <pre> {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 81007b8148d6fdb2a3d050ee980e1f481f896cbd 27 26 2023-06-01T21:18:46Z Pasadena 2 wikitext text/x-wiki == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 9038d6f9b1d7010a005ef25345d14a92bf1df158 28 27 2023-06-01T21:24:19Z Pasadena 2 wikitext text/x-wiki <noinclude> == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 0932914a11dad23f3d2b0526be9908a3c4ceab9c 35 28 2023-06-01T21:43:29Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 63975bef0317f5ce29749a004b535af5d52f33de 36 35 2023-06-01T21:43:56Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 25e8ac486134b5689c2a5d79b0cb250510e4db94 37 36 2023-06-01T21:46:54Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>Youtube</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> ed690adaaaef1efda86cf457a9108198de22f334 39 37 2023-06-01T21:48:00Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>YouTube</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> e1a4b5f44881a1d7a011afd8f4dc1e82d16589f6 40 39 2023-06-01T21:48:36Z Pasadena 2 Protected "[[Template:Author]]": High traffic page ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite)) wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Template:Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>YouTube</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> e1a4b5f44881a1d7a011afd8f4dc1e82d16589f6 41 40 2023-06-01T21:53:54Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>YouTube</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 16bd33140e26b1b0d23e54d289c9ff5263b2ff9e Pasadena 0 14 25 2023-06-01T21:13:56Z Pasadena 2 Created page with "[[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }}" wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} ddd122e4305360d6c66281def5b57a494008e0fd 29 25 2023-06-01T21:24:34Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. e0b08d9774ef6dfca6d8232dfb7420d8fcefced8 30 29 2023-06-01T21:28:04Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [https://upasadena.github.io/cyoas/living-god/ Living God] * [https://upasadena.github.io/cyoas/ultimate-god/ Ultimate God] * [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] * [https://upasadena.github.io/cyoas/jrpg-traitor/ JRPG Traitor] ==== Incomplete/WIP ==== * [https://upasadena.github.io/cyoas/awakened-god/ Awakened God] cf4fa94dedfcf44fd282cbf487e23ccd7b0c05e4 31 30 2023-06-01T21:32:06Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ Awakened God]) ecbc175bfb59b200574ee76d2c90ebd193cfebc3 32 31 2023-06-01T21:32:19Z Pasadena 2 /* Incomplete/WIP */ wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) 3216d94e3887fe3687dffd26d17335d32049b3d6 38 32 2023-06-01T21:47:37Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena] |discord=Pasadena#9851 |youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena] |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ |other_social_media= }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) b8d595122958f08b82b270725f74afc42da89ebe Category:Templates 14 15 34 2023-06-01T21:41:47Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 CYOA Wiki:Manual of Style 4 16 43 2023-06-01T22:08:31Z Pasadena 2 Created page with "== Language == This wiki should follow [[w:Oxford spelling|]], which is essentially [[w:British English|]] with -ize (but NOT -yze) endings. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0." wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. 24f62673da72bc1dc15437f1e79098d600abf0ee 44 43 2023-06-01T22:09:24Z Pasadena 2 wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. 044b2ad50e47e4ce4c77edc3a572d9024cb035ea 47 44 2023-06-01T22:14:33Z Pasadena 2 wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 673bd2589304e83e0e635155d39b3bb5cb64c723 Template:CYOA 10 17 48 2023-06-01T22:15:56Z Pasadena 2 Infobox created with infobox builder. wikitext text/x-wiki <infobox><title source="cyoa_name"><default>{{PAGENAME}}</default></title><image source="image"/><data source="author"><label>Author</label></data><data source="authors"><label>Authors</label></data><data source="static_link"><label>Link</label></data><data source="static_links"><label>Links</label></data><data source="reddit_post"><label>Reddit post</label></data><data source="release_date"><label>Release date</label></data><title source="interactive_section"/><data source="int_author"><label>Interactive Author</label></data><data source="int_authors"><label>Interactive Authors</label></data><data source="int_link"><label>Link</label></data><data source="int_links"><label>Links</label></data><title source="more_title"/><data source="dlc"><label>DLC</label></data><data source="dlcs"><label>DLCs</label></data><data source="fork"><label>Fork</label></data><data source="forks"><label>Forks</label></data></infobox> a95b19590e67da8e55ceb9c4714d8a6fd48f67e0 49 48 2023-06-01T22:16:38Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="reddit_post"> <label>Reddit post</label> </data> <data source="release_date"> <label>Release date</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 273c3dda5a8fd427743804b8b18b78f2103d40f1 50 49 2023-06-01T22:19:59Z Pasadena 2 wikitext text/x-wiki <noinclude> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="release_date"> <label>Release date</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> ceab543bda34aba1d86956c453b286a96c5ed76e Living God CYOA 0 18 51 2023-06-01T22:23:40Z Pasadena 2 Created page with "{{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |authors= |post= |release_date= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities] |more_title= |dlc= |dlcs= |fork= |forks= }}" wikitext text/x-wiki {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |authors= |post= |release_date= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities] |more_title= |dlc= |dlcs= |fork= |forks= }} 51c9198b7e9bd78a19f56b9f00eab999eb9fab1d Living God CYOA 0 18 52 51 2023-06-01T22:24:42Z Pasadena 2 wikitext text/x-wiki {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |post= |release_date= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities] |more_title= |dlc= |dlcs= |fork= |forks= }} b497147030d6833ddd1572f3fce819811a7b6a5b 59 52 2023-06-01T22:45:41Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a CYOA created by author [[MythicLegendary]]. 4ed495a3d7142d7c2c9039e1f31a7658bb54fd3c 62 59 2023-06-01T22:53:58Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. 70d4019690e00b31aa84f5734afc9688dba4827f 64 62 2023-06-01T23:06:10Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. 9f1d577ed54acda83ed0d462436c6bfff57e4077 66 64 2023-06-01T23:07:34Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. 337a7ee0776f22746654bb68f48ba8200215f8b8 72 66 2023-06-01T23:20:38Z Pasadena 2 Pasadena moved page [[Living God]] to [[Living God CYOA]] wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. 337a7ee0776f22746654bb68f48ba8200215f8b8 91 72 2023-06-03T02:18:30Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. == See also == * [[:Category:Living God CYOA Lore|Living God CYOA Lore]] 5e79922ad9bd9d70a220fa3276a85719e0873bc8 99 91 2023-06-03T02:36:50Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. == See also == * [[:Category:Living God CYOA Lore|Living God CYOA Lore]] * [[:Category:Living God CYOA Characters|Living God CYOA Characters]] 1240b83e71cb3b9e4cce216acb10aa33cc9e4036 Template:CYOA 10 17 53 50 2023-06-01T22:27:36Z Pasadena 2 wikitext text/x-wiki <noinclude> == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links= |post= |release_date= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="release_date"> <label>Release date</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 00350c1cd7ae8d1e39f12a673333b2598ab12fd6 54 53 2023-06-01T22:28:09Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links= |post= |release_date= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="release_date"> <label>Release date</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 689ab81d5d206922ca4bab5aa29d0964aeb0fee3 55 54 2023-06-01T22:29:55Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links= |post= |release_date= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} == Categories == Don't forget to add the applicable categories: <pre> [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] </pre> </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="release_date"> <label>Release date</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> ba7d109d7b36e684e428b21b38e39daaed506756 56 55 2023-06-01T22:36:51Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses. |post= |posts= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} == Categories == Don't forget to add the applicable categories: <pre> [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] </pre> </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="posts"> <label>Posts</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 43e7e3469102b47bc018126e2ff7b4569e8700ad 57 56 2023-06-01T22:37:19Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses. |post= |posts= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} </pre> == Categories == Don't forget to add the applicable categories: <pre> [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="posts"> <label>Posts</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 1a4cf5e7e16fe7109dc561d3a6c24ad33eb0060e 58 57 2023-06-01T22:37:41Z Pasadena 2 /* Categories */ wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |link= |links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses. |post= |posts= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} </pre> == Categories == Don't forget to add the applicable categories: <pre> [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="posts"> <label>Posts</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> bf6cb4fbc57d418972111cc284fcb0be9659a7c9 65 58 2023-06-01T23:07:24Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template == <pre> {{CYOA |title= |image= |author=[[Author]] |authors=[[Author1]], [[Author2]] |static_link= |static_links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses. |post= |posts= |interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty. |int_author=[[IntAuthor]] |int_link= |int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities] |more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty. |dlc= |dlcs= |fork= |forks= }} </pre> == Categories == Don't forget to add the applicable categories: <pre> [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] </pre> </noinclude> <infobox> <title source="cyoa_name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="author"> <label>Author</label> </data> <data source="authors"> <label>Authors</label> </data> <data source="static_link"> <label>Link</label> </data> <data source="static_links"> <label>Links</label> </data> <data source="post"> <label>Post</label> </data> <data source="posts"> <label>Posts</label> </data> <title source="interactive_section" /> <data source="int_author"> <label>Interactive Author</label> </data> <data source="int_authors"> <label>Interactive Authors</label> </data> <data source="int_link"> <label>Link</label> </data> <data source="int_links"> <label>Links</label> </data> <title source="more_title" /> <data source="dlc"> <label>DLC</label> </data> <data source="dlcs"> <label>DLCs</label> </data> <data source="fork"> <label>Fork</label> </data> <data source="forks"> <label>Forks</label> </data> </infobox> 686880ffab92324ac3252a2e8d134976686a5e55 Main Page 0 1 60 46 2023-06-01T22:50:03Z Pasadena 2 /* Quick Start */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** [[:Category:Static CYOAs|Static CYOAs]] ** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 8e812849b0b38dbc43c1682cc0f9f6be20cd669a 61 60 2023-06-01T22:51:56Z Pasadena 2 /* Quick Start */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 17daad540f9d1df8338281052759acd30b10203b 75 61 2023-06-01T23:41:23Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] f6c7815974026ab54563b85a7a7f6b986ce16b4c 76 75 2023-06-01T23:43:23Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] f03cad6f5c179036ba328226dbcad00bcbcd0978 100 76 2023-06-03T02:37:39Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] d3aa32431e451ef3a8c1d51c2dc672f187ff9fdb Author (Template) 0 19 63 2023-06-01T23:02:11Z Pasadena 2 Created page with "[[Category:Templates]] This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} John Doe is an author who creates [[CYOA]]s. == CYOAs == ==..." wikitext text/x-wiki [[Category:Templates]] This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} John Doe is an author who creates [[CYOA]]s. == CYOAs == === Static === This author has made the following [[Static CYOA]]s: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) === Interactive === This author has made the following [[Interactive CYOA]]s: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) ==== Incomplete/WIP ==== * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) </pre> cf518828f4c939648cb63b6e5c4ce9a9f9694338 70 63 2023-06-01T23:13:41Z Pasadena 2 wikitext text/x-wiki [[Category:Templates]] This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name= |image= |aliases= |social_media='Social Media' if there is any social media, otherwise leave it empty |reddit= |discord= |youtube= |imgur= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} John Doe is an author who creates [[CYOA]]s. == CYOAs == === Static === This author has made the following [[Static CYOA]]s: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) === Interactive === This author has made the following [[Interactive CYOA]]s: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) ==== Incomplete/WIP ==== * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) </pre> f684f409a599b32c9ff2752a08d5dee733534011 MythicLegendary 0 20 67 2023-06-01T23:11:02Z Pasadena 2 Created page with "[[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name=MythicLegendary |image= |aliases=PowerCreator, PowerCreatorAnon |reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary] |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} MythicLegendary is an author who creates [[CYOA]]s. == CYOAs == === Static === MythicLegendary has made the fol..." wikitext text/x-wiki [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name=MythicLegendary |image= |aliases=PowerCreator, PowerCreatorAnon |reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary] |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} MythicLegendary is an author who creates [[CYOA]]s. == CYOAs == === Static === MythicLegendary has made the following [[Static CYOA]]s: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) ==== Incomplete/WIP ==== MythicLegendary is rumoured to be working on the following: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) 5a179d8fcd2ec78404aad9ac73794a0ab7086f0d 71 67 2023-06-01T23:20:17Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name=MythicLegendary |image= |aliases=PowerCreator, PowerCreatorAnon |reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary] |discord= |youtube= |github= |email= |website= |cyoa_index= |other_social_media= }} MythicLegendary is an author who creates [[CYOA]]s. == CYOAs == === Static === MythicLegendary has made the following [[Static CYOA]]s: * [[Forced Basement Vacation CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FForced%20Basement%20Vacation%20CYOA link]) * [[Living God CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FLiving%20God%20CYOA link]) * [[Power Creator#New Pantheon|Power Creator - New Pantheon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20-%20New%20Pantheon%20CYOA link]) * [[Power Creator|Power Creator CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20CYOA link]) * [[Power Creator#Xenon|Power Creator Xenon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20Xenon%20CYOA link]) * [[Power Creator#Waifu]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPowerCreator%20Waifu%20CYOA link]) * [[Urban Phantom CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FUrban%20Phantom%20CYOA link]) * [[Essentials Meta CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8832 link]) * [[Metachain CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8828 link]) ==== Incomplete/WIP ==== MythicLegendary is rumoured to be working on the following: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) 8d88af4a66707dd4b4b2de57bb5eec8e6c9807ca Template:Author 10 13 68 41 2023-06-01T23:11:41Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Author |name= |image= |aliases= |reddit= |discord= |youtube= |imgur= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media"> <default>Social Media</default> </title> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>YouTube</label> </data> <data source="imgur"> <label>Imgur</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> 0c15bde2bf24d7cabf8ef9c40e03c14dbacd2a7b 69 68 2023-06-01T23:13:16Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Template code == Note that all of these are optional, and may be added at your leisure. <pre> {{Author |name= |image= |aliases= |social_media='Social Media' if there is any social media, otherwise leave it empty |reddit= |discord= |youtube= |imgur= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} </pre> == Category == Don't forget to add the applicable categories to the author's page. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <data source="aliases"> <label>Aliases</label> </data> <title source="social_media" /> <data source="reddit"> <label>Reddit</label> </data> <data source="discord"> <label>Discord</label> </data> <data source="youtube"> <label>YouTube</label> </data> <data source="imgur"> <label>Imgur</label> </data> <data source="github"> <label>Github</label> </data> <data source="email"> <label>Email</label> </data> <data source="website"> <label>Website</label> </data> <data source="cyoa_index"> <label>CYOA Index</label> </data> <data source="other_social_media"> <label>Other</label> </data> </infobox> f67a82637b97d3000bdb2ad352f24c50be3f4ce4 Living God 0 21 73 2023-06-01T23:20:38Z Pasadena 2 Pasadena moved page [[Living God]] to [[Living God CYOA]] wikitext text/x-wiki #REDIRECT [[Living God CYOA]] 5c3b77357039744277877f4c4211629cf816b009 Pasadena 0 14 74 38 2023-06-01T23:34:03Z Pasadena 2 wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena] |discord=Pasadena#9851 |youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena] |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ |other_social_media= }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) 4982b5556268737d09638d561e43ca86b9da848c Interactive CYOA Tutorial 0 22 77 2023-06-01T23:51:01Z Pasadena 2 Created page with "== Basics == === Rows === === Choices === === IDs & Requirements === === Points & Scores === === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == ==..." wikitext text/x-wiki == Basics == === Rows === === Choices === === IDs & Requirements === === Points & Scores === === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Custom HTML and CSS === === Custom Javascript === fe601d5545126da38cf3ff28ffe1e642c7591f76 78 77 2023-06-01T23:57:09Z Pasadena 2 wikitext text/x-wiki == Basics == === Rows === ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === === IDs & Requirements === === Points & Scores === === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Custom HTML and CSS === === Custom Javascript === dfbd12d4ea81811cda62ce8ec3dc36fcd71a1648 79 78 2023-06-02T00:02:18Z Pasadena 2 wikitext text/x-wiki == Basics == === Rows === ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === === Points & Scores === === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Custom HTML and CSS === === Custom Javascript === f18576309fa94cfc7ddef5c5a326799f1cd0d154 80 79 2023-06-02T00:15:12Z Pasadena 2 wikitext text/x-wiki == Basics == === Rows === ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Custom HTML and CSS === === Custom Javascript === 5d6f72455c28a9922c827a562043de6cfedcf1d5 81 80 2023-06-02T00:20:56Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs created with [[Interactive CYOA Creator]] ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Custom HTML and CSS === === Custom Javascript === 7535160183ddb6cf30a7585c77870bc371a037e5 82 81 2023-06-02T00:25:44Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, it is only attached to a row where choices can exist. ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Custom HTML and CSS === === Custom Javascript === ca8f68759f0d9e8275d116ad46e3ec0c1feb9642 83 82 2023-06-02T00:39:57Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, it is only attached to a row where choices can exist. ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === e0842e9cfd0b33a6d5f5f3a3c8a345e1fec37c21 CYOA Wiki:Manual of Style 4 16 84 47 2023-06-02T04:03:59Z Pasadena 2 wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 98f0696ced97e537cb7494fe7b6d4e42662b1b5e Megaworld 0 24 86 2023-06-03T02:12:57Z Pasadena 2 Created page with "A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Mo..." wikitext text/x-wiki A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five. They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless you should wilfully exacerbate them. You are also granted the capacity to lead and rule over these worlds fully, efficiently, and without any discrepancy. 897d66317fb0991a677acd95f63681d4de4b2fd5 87 86 2023-06-03T02:15:33Z Pasadena 2 wikitext text/x-wiki A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five. They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them. b0b07259132b37d05ddbd7af393e7cc1b5aac24d 88 87 2023-06-03T02:16:48Z Pasadena 2 wikitext text/x-wiki [[Category:Lore]] [[Category:Living God CYOA Lore]] A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five. They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them. 54bee6929065167698d270b202f31e051f699519 93 88 2023-06-03T02:29:39Z Pasadena 2 wikitext text/x-wiki [[Category:Lore]] [[Category:Living God CYOA Lore]] A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. They are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them. == Trivia == * Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five. bb8c4dfc8513bc9e7206250c73e7cbf70bfcbb0e Category:Lore 14 25 89 2023-06-03T02:17:04Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Living God CYOA Lore 14 26 90 2023-06-03T02:17:14Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Palace World 0 27 92 2023-06-03T02:28:26Z Pasadena 2 Created page with "[[Category:Lore]] [[Category:Living God CYOA Lore]] A '''Palace World''' is a type of planet in the [[Living God CYOA]]. == Description == While [[Megaworld]]s are designed to house populations, trade, and commerce, a Palace World is purely a luxury item. A Palace World is an artificial planet designed to the exact specifications of the order down to the most minute detail, usually for an absurd price. This includes personal estates and any other amenities on the sur..." wikitext text/x-wiki [[Category:Lore]] [[Category:Living God CYOA Lore]] A '''Palace World''' is a type of planet in the [[Living God CYOA]]. == Description == While [[Megaworld]]s are designed to house populations, trade, and commerce, a Palace World is purely a luxury item. A Palace World is an artificial planet designed to the exact specifications of the order down to the most minute detail, usually for an absurd price. This includes personal estates and any other amenities on the surface, biologically customized flora, fauna, and populations, planetary temperatures and climate, atmospheric densities, and much more. Entire races and species may be custom built from the ground up on your palace world, if a customer so desires. If they wish, their palace may extend from pole to pole of the world, spanning millions of miles or light years, depending on the size of their planet. If expansions, alterations, or removals are required, these may be requested and promptly fulfilled by the megacorporation which provided them their Palace World if alterations cannot be made through other means. A Palace World is a perfect place to use as a base of operations and leisure zone, fit with every imaginable comfort and pleasure, from beautiful silver hills to glowing flowers in the night. 325e2d84c47a644b5507ff5f45ebc5c6ec3a3550 Siren Artificial Intelligence 0 28 94 2023-06-03T02:34:21Z Pasadena 2 Created page with "[[Category:Characters]] [[Category:Living God CYOA Characters]] The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]]. == Description == The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds. It is installed via a meta-agent directly, meaning that it may be accessed for comm..." wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]]. == Description == The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds. It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise. The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise. It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance. It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful. 19315478862003a1322c1e89f7dba674095c80ed 95 94 2023-06-03T02:35:27Z Pasadena 2 wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]]. == Description == The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds. It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise. The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise. It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance. It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful. == Trivia == * A Siren AI is available as a Subordinate in the Living God CYOA 26ef1f2988cdf8af509e96c234dba185b4e6f90d 96 95 2023-06-03T02:35:51Z Pasadena 2 wikitext text/x-wiki [[Category:Lore]] [[Category:Living God CYOA Lore]] [[Category:Characters]] [[Category:Living God CYOA Characters]] The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]]. == Description == The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds. It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise. The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise. It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance. It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful. == Trivia == * A Siren AI is available as a Subordinate in the Living God CYOA 6aa7354daf734d5c67e4252cce7dc8b750cfc8e2 Category:Characters 14 29 97 2023-06-03T02:36:08Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Living God CYOA Characters 14 30 98 2023-06-03T02:36:17Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Godlike CYOAs 14 31 101 2023-06-03T02:38:06Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Category:Science Fiction CYOAs 14 32 102 2023-06-03T02:38:29Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Living God CYOA 0 18 103 99 2023-06-03T02:38:32Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] [[Category:Godlike CYOAs]] [[Category:Science Fantasy CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. == See also == * [[:Category:Living God CYOA Lore|Living God CYOA Lore]] * [[:Category:Living God CYOA Characters|Living God CYOA Characters]] 0ae45d93271ff27c50e71d4ad681beffba781248 104 103 2023-06-03T02:38:54Z Pasadena 2 wikitext text/x-wiki [[Category:CYOAs]] [[Category:Static CYOAs]] [[Category:Interactive CYOAs]] [[Category:Godlike CYOAs]] [[Category:Science Fiction CYOAs]] {{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |static_link= |static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019) |post= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1] |more_title= |dlc= |dlcs= |fork= |forks= }} The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]]. == See also == * [[:Category:Living God CYOA Lore|Living God CYOA Lore]] * [[:Category:Living God CYOA Characters|Living God CYOA Characters]] b8f8b9ed54bb5f3490ecc47d612ddf08e9025fae Category:Locations 14 33 105 2023-06-03T02:39:54Z Pasadena 2 Created blank page wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Main Page 0 1 106 100 2023-06-03T02:42:17Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * [[Special:Categories|Categories]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 678d32e474f5cb4191707cac3bfd5242e67c6165 124 106 2023-06-09T23:25:07Z Pasadena 2 wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[:Category:Templates|Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] dffeb31dd381224ba73d970f6756c7c45b10a2db 133 124 2023-06-09T23:50:38Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] f7d8eb0d1361f91482c3e8f2fc7ddefa764d7e0f 137 133 2023-06-09T23:53:54Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] a5992a8f0078b1db3e45d4d5d3d9c743e033ff83 The Emissary 0 34 107 2023-06-03T02:48:22Z Pasadena 2 Created page with "[[Category:Characters]] [[Category:Living God CYOA Characters]] '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time..." wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible. They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time. The Emissary is incapable of betraying you or pursuing interests other than yours. The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to. This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise. f1eb7217ac5fbc3caee7e0fec842e0dc62711ac6 116 107 2023-06-03T03:28:57Z Pasadena 2 wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. {{Character image=[[The Emissary.jpg]] biographical_information_section=Biographical information alias= aliases= nickname= nicknames= epithet= epithets= title= titles= nationality= ethnicity= clan= clans= house= houses= family= status= age= born= died= blood_type= birthplace= physical_description_section=Physical description hair_colour=Black (default) eye_colour=Black (default) skin_colour=White (default) height= weight= personal_information_section=Personal information gender=Male (default) love_interest= love_interests= spouse= spouses= allies= enemies= weapon_of_choice= fighting_styles= political_information_section=Political information occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor position= predecessor= successor= affiliation=[[The Player]] team= teams= }} == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible. They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time. The Emissary is incapable of betraying you or pursuing interests other than yours. The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to. This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise. c33a776fdfdb8933350d3dbe0cbeaeded92c0c9b 120 116 2023-06-03T03:33:40Z Pasadena 2 wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. {{Character |image=[[File:The Emissary.jpg]] |biographical_information_section=Biographical information |physical_description_section=Physical description |hair_colour=Black (default) |eye_colour=Black (default) |skin_colour=White (default) |personal_information_section=Personal information |gender=Male (default) |allies=[[The Player]] |political_information_section=Political information |occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor |affiliation=[[The Player]] }} == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible. They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time. The Emissary is incapable of betraying you or pursuing interests other than yours. The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to. This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise. 7c49ab6b7666208aeda06b2c4268418f80e93de4 121 120 2023-06-03T03:34:33Z Pasadena 2 wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] {{Character |image=The Emissary.jpg |biographical_information_section=Biographical information |title=The Emissary |physical_description_section=Physical description |hair_colour=Black (default) |eye_colour=Black (default) |skin_colour=White (default) |personal_information_section=Personal information |gender=Male (default) |allies=[[The Player]] |political_information_section=Political information |occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor |affiliation=[[The Player]] }} '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible. They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time. The Emissary is incapable of betraying you or pursuing interests other than yours. The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to. This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise. 8ee5449a94fbed9c4f800be98e70f041799e18e2 122 121 2023-06-03T03:38:24Z Pasadena 2 wikitext text/x-wiki [[Category:Characters]] [[Category:Living God CYOA Characters]] {{Character |image=The Emissary.jpg |biographical_information_section=Biographical information |title=The Emissary |physical_description_section=Physical description |hair_colour=Black/Dark brown (default) |skin_colour=White (default) |personal_information_section=Personal information |gender=Male (default) |allies=[[The Player]] |political_information_section=Political information |occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor |affiliation=[[The Player]] }} '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible. They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time. The Emissary is incapable of betraying you or pursuing interests other than yours. The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to. This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise. 2d13225d61d089a37712ce4cc42aa3eadefa2c32 Template:Character 10 35 108 2023-06-03T03:12:21Z Pasadena 2 Infobox created with infobox builder. wikitext text/x-wiki <infobox><title source="name"><default>{{PAGENAME}}</default></title><image source="image"/><title source="biographical_information_section"><default>Biographical Information</default></title><data source="alias"><label>Alias</label></data><data source="aliases"><label>Aliases</label></data><data source="nickname"><label>Nickname</label></data><data source="nicknames"><label>Nicknames</label></data><data source="epithet"><label>Epithet</label></data><data source="Epithets"><label>Epithets</label></data><data source="title"><label>Title</label></data><data source="titles"><label>Titles</label></data><data source="nationality"><label>Nationality</label></data><data source="ethnicity"><label>Ethnicity</label></data><data source="clan"><label>Clan</label></data><data source="clans"><label>Clans</label></data><data source="house"><label>House</label></data><data source="houses"><label>Houses</label></data><data source="family"><label>Family</label></data><data source="status"><label>Status</label></data><data source="age"><label>Age</label></data><data source="born"><label>Born</label></data><data source="died"><label>Died</label></data><data source="blood_type"><label>Blood type</label></data><data source="birthplace"><label>Birthplace</label></data><title source="physical_description_section"><default>Physical Description</default></title><data source="hair_colour"><label>Hair colour</label></data><data source="eye_colour"><label>Eye colour</label></data><data source="skin_colour"><label>Skin colour</label></data><data source="heigh"><label>Height</label></data><data source="weight"><label>Weight</label></data><title source="personal_information_section"><default>Personal Information</default></title><data source="gender"><label>Gender</label></data><data source="love_interest"><label>Love interest</label></data><data source="love_interests"><label>Love interests</label></data><data source="allies"><label>Allies</label></data><data source="enemies"><label>Enemies</label></data><data source="weapon_of_choice"><label>Weapon of choice</label></data><data source="fighting_styles"><label>Fighting styles</label></data><title source="political_information_section"><default>Political Information</default></title><data source="occupation"><label>Occupation</label></data><data source="position"><label>Position</label></data><data source="predecessor"><label>Predecessor</label></data><data source="successor"><label>Successor</label></data><data source="affiliation"><label>Affiliation</label></data><data source="team"><label>Team</label></data><data source="teams"><label>Teams</label></data></infobox> 915a1c14ceb26780855a8aa95bd459e580f327c8 109 108 2023-06-03T03:12:48Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="heigh"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 7f7f3b7a7201b45f8ea3ca9181a2ad1150345ca1 110 109 2023-06-03T03:16:39Z Pasadena 2 wikitext text/x-wiki <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> d97ca93c5e5235f0d72dc3e051f365aabadbf129 111 110 2023-06-03T03:18:59Z Pasadena 2 wikitext text/x-wiki <noinclude> == Usage == <pre> {{Character name= (Keep empty if same as page title) image= biographical_information_section=Put 'Biographical information' if there exists information alias= aliases= nickname= nicknames= epithet= epithets= title= titles= nationality= ethnicity= clan= clans= house= houses= family= status= (Alive|Dead|Unknown) age= born= died= blood_type= birthplace= physical_description_section=Put 'Physical description' if information exists hair_colour= eye_colour= skin_colour= height= weight= personal_information_section='Personal information' if info gender= love_interest= love_interests= spouse= spouses= allies= enemies= weapon_of_choice= fighting_styles= political_information_section='Political information' if info occupation= position= predecessor= successor= affiliation= team= teams= }} </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="spouse"> <label>Spouse</label> </data> <data source="spouses"> <label>Spouses</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 247de89077709c3fbe5e57fbce8fd4c23a20fcc0 112 111 2023-06-03T03:20:07Z Pasadena 2 wikitext text/x-wiki <noinclude> == Categories == Don't forget to add the appropriate categories. <pre> [[Category:Characters]] [[Category:XYZ CYOA Characters]] [[Category:Lore]] [[Category:XYZ CYOA Lore]] </pre> == Usage == <pre> {{Character name= (Keep empty if same as page title) image= biographical_information_section=Put 'Biographical information' if there exists information alias= aliases= nickname= nicknames= epithet= epithets= title= titles= nationality= ethnicity= clan= clans= house= houses= family= status= (Alive|Dead|Unknown) age= born= died= blood_type= birthplace= physical_description_section=Put 'Physical description' if information exists hair_colour= eye_colour= skin_colour= height= weight= personal_information_section='Personal information' if info gender= love_interest= love_interests= spouse= spouses= allies= enemies= weapon_of_choice= fighting_styles= political_information_section='Political information' if info occupation= position= predecessor= successor= affiliation= team= teams= }} </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="spouse"> <label>Spouse</label> </data> <data source="spouses"> <label>Spouses</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 46a849ee97d1597b66d89666c0667bab9d54b736 117 112 2023-06-03T03:29:52Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Template]] == Categories == Don't forget to add the appropriate categories. <pre> [[Category:Characters]] [[Category:XYZ CYOA Characters]] [[Category:Lore]] [[Category:XYZ CYOA Lore]] </pre> == Usage == <pre> {{Character name= (Keep empty if same as page title) image= biographical_information_section=Put 'Biographical information' if there exists information alias= aliases= nickname= nicknames= epithet= epithets= title= titles= nationality= ethnicity= clan= clans= house= houses= family= status= (Alive|Dead|Unknown) age= born= died= blood_type= birthplace= physical_description_section=Put 'Physical description' if information exists hair_colour= eye_colour= skin_colour= height= weight= personal_information_section='Personal information' if info gender= love_interest= love_interests= spouse= spouses= allies= enemies= weapon_of_choice= fighting_styles= political_information_section='Political information' if info occupation= position= predecessor= successor= affiliation= team= teams= }} </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="spouse"> <label>Spouse</label> </data> <data source="spouses"> <label>Spouses</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 33c3c732f357c4b373473eba609ed27390ac05ff 118 117 2023-06-03T03:32:16Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Categories == Don't forget to add the appropriate categories. <pre> [[Category:Characters]] [[Category:XYZ CYOA Characters]] [[Category:Lore]] [[Category:XYZ CYOA Lore]] </pre> == Usage == <pre> {{Character name= (Keep empty if same as page title) image= biographical_information_section=Put 'Biographical information' if there exists information alias= aliases= nickname= nicknames= epithet= epithets= title= titles= nationality= ethnicity= clan= clans= house= houses= family= status= (Alive|Dead|Unknown) age= born= died= blood_type= birthplace= physical_description_section=Put 'Physical description' if information exists hair_colour= eye_colour= skin_colour= height= weight= personal_information_section='Personal information' if info gender= love_interest= love_interests= spouse= spouses= allies= enemies= weapon_of_choice= fighting_styles= political_information_section='Political information' if info occupation= position= predecessor= successor= affiliation= team= teams= }} </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="spouse"> <label>Spouse</label> </data> <data source="spouses"> <label>Spouses</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 5eddb05a3e8b6915d42761a55d4a4035d5a082ae 119 118 2023-06-03T03:33:26Z Pasadena 2 wikitext text/x-wiki <noinclude> [[Category:Templates]] == Categories == Don't forget to add the appropriate categories. <pre> [[Category:Characters]] [[Category:XYZ CYOA Characters]] [[Category:Lore]] [[Category:XYZ CYOA Lore]] </pre> == Usage == <pre> {{Character |name= (Keep empty if same as page title) |image= |biographical_information_section=Put 'Biographical information' if there exists information |alias= |aliases= |nickname= |nicknames= |epithet= |epithets= |title= |titles= |nationality= |ethnicity= |clan= |clans= |house= |houses= |family= |status= (Alive|Dead|Unknown) |age= |born= |died= |blood_type= |birthplace= |physical_description_section=Put 'Physical description' if information exists |hair_colour= |eye_colour= |skin_colour= |height= |weight= |personal_information_section='Personal information' if info |gender= |love_interest= |love_interests= |spouse= |spouses= |allies= |enemies= |weapon_of_choice= |fighting_styles= |political_information_section='Political information' if info |occupation= |position= |predecessor= |successor= |affiliation= |team= |teams= }} </pre> </noinclude> <infobox> <title source="name"> <default>{{PAGENAME}}</default> </title> <image source="image" /> <title source="biographical_information_section"> <default>Biographical Information</default> </title> <data source="alias"> <label>Alias</label> </data> <data source="aliases"> <label>Aliases</label> </data> <data source="nickname"> <label>Nickname</label> </data> <data source="nicknames"> <label>Nicknames</label> </data> <data source="epithet"> <label>Epithet</label> </data> <data source="Epithets"> <label>Epithets</label> </data> <data source="title"> <label>Title</label> </data> <data source="titles"> <label>Titles</label> </data> <data source="nationality"> <label>Nationality</label> </data> <data source="ethnicity"> <label>Ethnicity</label> </data> <data source="clan"> <label>Clan</label> </data> <data source="clans"> <label>Clans</label> </data> <data source="house"> <label>House</label> </data> <data source="houses"> <label>Houses</label> </data> <data source="family"> <label>Family</label> </data> <data source="status"> <label>Status</label> </data> <data source="age"> <label>Age</label> </data> <data source="born"> <label>Born</label> </data> <data source="died"> <label>Died</label> </data> <data source="blood_type"> <label>Blood type</label> </data> <data source="birthplace"> <label>Birthplace</label> </data> <title source="physical_description_section"> <default>Physical Description</default> </title> <data source="hair_colour"> <label>Hair colour</label> </data> <data source="eye_colour"> <label>Eye colour</label> </data> <data source="skin_colour"> <label>Skin colour</label> </data> <data source="height"> <label>Height</label> </data> <data source="weight"> <label>Weight</label> </data> <title source="personal_information_section"> <default>Personal Information</default> </title> <data source="gender"> <label>Gender</label> </data> <data source="love_interest"> <label>Love interest</label> </data> <data source="love_interests"> <label>Love interests</label> </data> <data source="spouse"> <label>Spouse</label> </data> <data source="spouses"> <label>Spouses</label> </data> <data source="allies"> <label>Allies</label> </data> <data source="enemies"> <label>Enemies</label> </data> <data source="weapon_of_choice"> <label>Weapon of choice</label> </data> <data source="fighting_styles"> <label>Fighting styles</label> </data> <title source="political_information_section"> <default>Political Information</default> </title> <data source="occupation"> <label>Occupation</label> </data> <data source="position"> <label>Position</label> </data> <data source="predecessor"> <label>Predecessor</label> </data> <data source="successor"> <label>Successor</label> </data> <data source="affiliation"> <label>Affiliation</label> </data> <data source="team"> <label>Team</label> </data> <data source="teams"> <label>Teams</label> </data> </infobox> 975aef407b4cc41f609141c71d5616436a7d2b33 File:The Emissary.jpg 6 36 113 2023-06-03T03:24:38Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 114 113 2023-06-03T03:25:00Z Pasadena 2 Pasadena moved page [[File:The emissary.jpg]] to [[File:The Emissary.jpg]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:The emissary.jpg 6 37 115 2023-06-03T03:25:00Z Pasadena 2 Pasadena moved page [[File:The emissary.jpg]] to [[File:The Emissary.jpg]] wikitext text/x-wiki #REDIRECT [[File:The Emissary.jpg]] 2a2e1bcc3ca0bbaa4d3fa110ff90aec0ebe39792 Interactive CYOA Tutorial 0 22 123 83 2023-06-09T23:21:08Z Pasadena 2 /* Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 39289b99d76e4e42f1030821ffc8149fe70994fa 126 123 2023-06-09T23:28:06Z Pasadena 2 /* Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. Create a row by opening up the sidebar and pressing '''Create New Row'''. [[File:1_creating_a_row.gif|200px|thumb|left|Caption]] ==== Creating Rows==== ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === b91789a89c1aca20fb3d5672aa637cb88e7c619f 127 126 2023-06-09T23:28:38Z Pasadena 2 /* Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. [[File:1_creating_a_row.gif]] ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 6d6c2eab6b15da6aca79876f397c7b044d96a81b 128 127 2023-06-09T23:32:13Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. [[File:1_creating_a_row.gif|upright=1.0]] ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 69b0135e329209012b7e6cc9317e08e211da6c40 129 128 2023-06-09T23:35:34Z Pasadena 2 /* Creating Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. [[File:1_creating_a_row.gif|frame|upright=1.0]] ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 27d0f299943fc4c945d57a0eb7b82f64b4ba2ae3 130 129 2023-06-09T23:47:48Z Pasadena 2 /* Creating Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. [[File:1_creating_a_row.gif]] ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 738007ec76f98c905a618b56934576bb31526302 132 130 2023-06-09T23:49:42Z Pasadena 2 /* Creating Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif]] </div> ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 4209bff3b9881851a71f91007921bd4924f39235 136 132 2023-06-09T23:52:58Z Pasadena 2 /* Creating Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning and Deleting Rows ==== ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 618e9070a3900342c0d0b429198316cf4c8d20f8 140 136 2023-06-10T00:02:55Z Pasadena 2 /* Cloning and Deleting Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button. ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 76b7178b495ac7f087c285e644a1bd3c01f2fefe 144 140 2023-06-10T00:11:02Z Pasadena 2 /* Cloning Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4 clone row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button. ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === aebe891698b3ca049fd71b932d6e43bb2077dfd8 145 144 2023-06-10T00:11:58Z Pasadena 2 /* Deleting Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4 clone row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === a54e727bd131782b7d1ba580207ec6873fa9e9b1 146 145 2023-06-10T00:13:03Z Pasadena 2 /* Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea 147 146 2023-06-10T00:15:09Z Pasadena 2 Protected "[[Interactive CYOA Tutorial]]": High traffic page ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite)) wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea 148 147 2023-06-10T00:15:41Z Pasadena 2 Changed protection settings for "[[Interactive CYOA Tutorial]]": High traffic page ([Edit=Allow only logged in users] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea File:1 creating a row.gif 6 38 125 2023-06-09T23:25:55Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 MediaWiki:Common.css 8 39 131 2023-06-09T23:49:08Z Pasadena 2 Created page with "/* CSS placed here will be applied to all skins */ /* To make images responsive */ .res-img img { max-width:100%; height:auto; }" css text/css /* CSS placed here will be applied to all skins */ /* To make images responsive */ .res-img img { max-width:100%; height:auto; } 3386ea9b3c1eb714139ed089244fab7650513a9a CYOA Wiki:Editing 4 40 134 2023-06-09T23:51:38Z Pasadena 2 Created page with "== GIF overflowing == If a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre>" wikitext text/x-wiki == GIF overflowing == If a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre> 8faa101cdd60f4b33cf09ece12ca131ea573deb3 135 134 2023-06-09T23:52:02Z Pasadena 2 wikitext text/x-wiki == Image overflowing == If an image like a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre> 9dada2c0abbe4b1187f4e49098dc6a133545dc6a 143 135 2023-06-10T00:10:20Z Pasadena 2 wikitext text/x-wiki == Image overflowing == If an image like a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre> == Get rid of image zoom and link == Simply add <pre>|link=</pre> to the end, making sure that the link is empty. <pre> <div class="res-img"> [[File:image.gif|link=]] </div> <div class="res-img">[[File:image.gif|link=]]</div> </pre> 51f94aee05df82de577737e9aad04af3ffce1171 File:2 clone button.png 6 41 138 2023-06-09T23:58:35Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:3 delete button.png 6 42 139 2023-06-09T23:59:00Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:5 delete row.gif 6 43 141 2023-06-10T00:08:38Z Pasadena 2 Uploaded own work with UploadWizard wikitext text/x-wiki =={{int:filedesc}}== {{Information |description={{en|1=Tutorial}} |date=2023-06-10 |source={{own}} |author=[[User:Pasadena|Pasadena]] |permission= |other versions= }} =={{int:license-header}}== {{self|cc-by-sa-4.0}} 194b3619574dd25db596df5cbd897f9da31f7a64 File:4 clone row.gif 6 44 142 2023-06-10T00:08:38Z Pasadena 2 Uploaded own work with UploadWizard wikitext text/x-wiki =={{int:filedesc}}== {{Information |description={{en|1=Tutorial}} |date=2023-06-10 |source={{own}} |author=[[User:Pasadena|Pasadena]] |permission= |other versions= }} =={{int:license-header}}== {{self|cc-by-sa-4.0}} 194b3619574dd25db596df5cbd897f9da31f7a64 Interactive CYOA Creator 0 45 149 2023-06-10T00:18:37Z Pasadena 2 Created page with "The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]]. You do not need to have bought the creator in order to use it, but it does support the developer. == Links == * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]" wikitext text/x-wiki The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]]. You do not need to have bought the creator in order to use it, but it does support the developer. == Links == * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] cf7c1ba919d06057cc58537624d5d8e39aa7ed59 150 149 2023-06-10T00:19:06Z Pasadena 2 wikitext text/x-wiki The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]]. You do not need to have bought the creator in order to use it, but it does support the developer. == Links == * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [[Interactive CYOA Tutorial]] – Tutorial for using the creator e3da970b45a76430032f4534651faa3a1570c53b Interactive CYOA 0 46 151 2023-06-10T00:20:52Z Pasadena 2 Created page with "'''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with. == Links == * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit] * [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]]" wikitext text/x-wiki '''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with. == Links == * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit] * [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]] f2e0598941e32fab49559de0f7078a7b7ac49fa0 CYOA 0 47 152 2023-06-10T00:41:40Z Pasadena 2 Created page with "A '''CYOA''' (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be [[Static CYOA|pure text or text and images]], or even in [[Interactive CYOA|an interactive format]]. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand." wikitext text/x-wiki A '''CYOA''' (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be [[Static CYOA|pure text or text and images]], or even in [[Interactive CYOA|an interactive format]]. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. 5d7d4d64c376de7382f397b2aaad99ff0cbaad00 Interactive CYOA 0 46 153 151 2023-06-10T00:42:25Z Pasadena 2 wikitext text/x-wiki '''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with. == Links == * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit] * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] (primarily [[Static CYOA]]s, but there is an interactive filter) * [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]] 6e8eaf5fa0f75657234e6c2b103f32bfdefb53a7 154 153 2023-06-10T00:42:56Z Pasadena 2 /* Links */ wikitext text/x-wiki '''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with. == Links == * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit] * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] (primarily [[Static CYOA]]s, but there are interactives there) * [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]] 85312eb56f977f20661769b675931ff26b7c78b3 Static CYOA 0 48 155 2023-06-10T00:44:31Z Pasadena 2 Created page with "'''Static CYOAs''' are [[CYOA]]s that are comprised of purely text, purely images, or a combination of both. == Links == * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] * [https://cyoaarchive.com/main Allsync] – An archive of almost all static CYOAs" wikitext text/x-wiki '''Static CYOAs''' are [[CYOA]]s that are comprised of purely text, purely images, or a combination of both. == Links == * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] * [https://cyoaarchive.com/main Allsync] – An archive of almost all static CYOAs 1bed474fb9fd0a56636b9664e43fabfa36b40045 File:0a start.png 6 49 156 2023-06-10T00:49:10Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Interactive CYOA Tutorial 0 22 157 148 2023-06-10T00:52:43Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you reset the options. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 2aa425c2ab8c3dd111ba505bcb5710eccd68af1e 158 157 2023-06-10T00:53:25Z Pasadena 2 /* Object Width */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you reset the options. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 5e6e403391e3686b1cdcb1f38a209f8d56e612d3 159 158 2023-06-10T00:53:55Z Pasadena 2 /* Launching the creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === e7a4559990e3e305f3065ad8f8e854394e951c22 160 159 2023-06-10T00:55:37Z Pasadena 2 /* Cloning Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Row Title ==== ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === f611343615f552ebdddc3bbc6ba240f0d38793be 164 160 2023-06-10T01:03:16Z Pasadena 2 /* Row Title */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 86ec823f9071dbafe6d7f0e36c47c36861060fd1 165 164 2023-06-10T01:05:58Z Pasadena 2 /* Launching the creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 79f7255cf4017bbf0db25669153ec3aa74140c8b 166 165 2023-06-10T01:06:47Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 61c81ed1919798f518e3e60dac591094a279d792 168 166 2023-06-10T01:11:18Z Pasadena 2 /* Row Text */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === e497d490e46f85026b12e468653c89ce7873d696 169 168 2023-06-10T01:12:10Z Pasadena 2 /* Row Text */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Uploading Local Files ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === c12c2f9fa7f7e8a5a127758ba3e771f4160211fa 170 169 2023-06-10T01:17:23Z Pasadena 2 /* Uploading Local Files */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image |} ==== Local Images ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 918b7a8fa4ec1bc012e8f6c5f762f137a191498a 171 170 2023-06-10T01:18:33Z Pasadena 2 /* Local vs External Images */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== Uploading from Links ==== ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 3c4287be78eb41071966e4d27c0f6774774ec26b 172 171 2023-06-10T01:20:44Z Pasadena 2 /* Uploading from Links */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 598bc4d95f12bb16bc08148f95e370cf52c5c556 173 172 2023-06-10T01:26:21Z Pasadena 2 /* Important Advice */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: (1) because as you make your CYOA you might be tempted to make private styling choices, which is not advisable, and (2) excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either (a) go to each of those sections for each change you make, and change the private styling, or (b) turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === b140f48f58c3b75d17b7702b66a4357dec388949 174 173 2023-06-10T01:27:42Z Pasadena 2 /* Important Advice */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. === Custom HTML and CSS === === Custom Javascript === 8839cd6034d3a9777c1f0ee3220349bdb5f6bc9d 175 174 2023-06-10T01:28:52Z Pasadena 2 /* Use URLs for Images */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 114de56f353714c706876976c1f11ac98a8f35fa 176 175 2023-06-10T01:30:00Z Pasadena 2 /* Local vs External Images */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== There will be a way to dynamically change this amount, but we’ll come back to that later. ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === f626e83d476f4001a3d697b79add0af147e6eb99 179 176 2023-06-10T01:49:09Z Pasadena 2 /* Allowed Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later. <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 9113a93215a3aaa84b9beef4b47aafba0440dcd6 180 179 2023-06-10T01:49:55Z Pasadena 2 /* Allowed Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices]]. <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 908ca7d39d337b675f23b753fabd14d5d64b582b 181 180 2023-06-10T01:50:07Z Pasadena 2 /* Allowed Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === f2dbdefca606d2112a50cbc7eda71abaa8d3e562 183 181 2023-06-10T01:54:37Z Pasadena 2 /* Selected Choices (Input) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === bbc32cd9b368d4beeaa5018eabfa1954e6212686 184 183 2023-06-10T01:55:20Z Pasadena 2 /* Selected Choices (Input) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 31870c313c35c29040e29f470ca5eadbf7a4f06f 185 184 2023-06-10T01:55:31Z Pasadena 2 /* Selected Choices (Input) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 16dd7c5e73aa5c14633f3b9db7bec7799dc90679 186 185 2023-06-10T01:56:24Z Pasadena 2 /* Selected Choices (Input) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices === ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 60e111b82ef27fac0de1d972e0572deb6381f147 187 186 2023-06-10T01:58:10Z Pasadena 2 /* Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 163e51b07740a3a8d6a3dffffe1a54a7959fe660 188 187 2023-06-10T01:58:33Z Pasadena 2 /* Choices / Objects */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 5bcde9447b2f74343d27db126952ca674bd684cf 190 188 2023-06-10T02:02:31Z Pasadena 2 /* Objects Per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|link=|The option]]</div> ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 62d0e9871934fa924f421bb7c302444415129c2d 192 190 2023-06-10T02:11:58Z Pasadena 2 /* Objects Per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 96d5ed1c6eb0230f25d307c7d5232e4a493738c3 193 192 2023-06-10T02:12:53Z Pasadena 2 /* Useful links */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! ==== Other tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === faee8daec6b48ebcb7687ed43ebba3ed227c3339 194 193 2023-06-10T02:13:07Z Pasadena 2 /* Other tutorials */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 6a2aa35356f3346cd8a59f8a5daf5b83e5fbd436 198 194 2023-06-10T02:20:01Z Pasadena 2 /* Extending your CYOA */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here! ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 4eb6e73212dc05155211b6c60a120fc40df38541 199 198 2023-06-10T02:21:06Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === b38da9d77d4eeda4053d84c815e573ef5549aa2c 200 199 2023-06-10T02:22:46Z Pasadena 2 /* Other Tutorials */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === ebc1f6b152ec93d873445f948b057ccfee25c73a 201 200 2023-06-10T02:23:31Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> Example.jpg|Caption1 Example.jpg|Caption2 </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === f9b78f993d2432bb1cc625d1dbdd4e171a9dc285 File:6 edit row.png 6 50 161 2023-06-10T00:58:04Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:7 edit row.gif 6 51 162 2023-06-10T01:00:19Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:8 row title.gif 6 52 163 2023-06-10T01:03:07Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:9 row text.gif 6 53 167 2023-06-10T01:11:03Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 MeanDelay 0 54 177 2023-06-10T01:32:18Z Pasadena 2 Created page with "'''MeanDelay''' is the creator of the [[Interactive CYOA Creator]]. == Links == * [https://www.reddit.com/user/MeanDelay/ u/MeanDelay] * [https://meandelay.itch.io/ itch.io (store)], [https://itch.io/profile/meandelay itch.io (profile)]" wikitext text/x-wiki '''MeanDelay''' is the creator of the [[Interactive CYOA Creator]]. == Links == * [https://www.reddit.com/user/MeanDelay/ u/MeanDelay] * [https://meandelay.itch.io/ itch.io (store)], [https://itch.io/profile/meandelay itch.io (profile)] fe152475b5a8880a7c619bdff4cea00e6a5c8785 File:10 allowed choices.png 6 55 178 2023-06-10T01:35:13Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:11 selected choices.gif 6 56 182 2023-06-10T01:54:31Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:12 objects per row.png 6 57 189 2023-06-10T01:59:21Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 CYOA Wiki:Editing 4 40 191 143 2023-06-10T02:06:23Z Pasadena 2 wikitext text/x-wiki == Images == === Image overflowing === If an image like a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre> === Get rid of image zoom and link === Simply add <pre>|link=</pre> to the end, making sure that the link is empty. <pre> <div class="res-img"> [[File:image.gif|link=]] </div> <div class="res-img">[[File:image.gif|link=]]</div> </pre> === Framed images overflowing === Simply add 'center' to them. <pre> <div class="res-img">[[File:image.png|frame|center|link=|The caption]]</div> </pre> f0c83ce05296951de23d11ab508a4aa9c10e78cf PowerCreator 0 58 195 2023-06-10T02:15:11Z Pasadena 2 Redirected page to [[MythicLegendary]] wikitext text/x-wiki #REDIRECT [[MythicLegendary]] 8b27c04fec3a2429a6c4c088bc2a1c873ec45491 PowerCreatorAnon 0 59 196 2023-06-10T02:15:27Z Pasadena 2 Redirected page to [[MythicLegendary]] wikitext text/x-wiki #REDIRECT [[MythicLegendary]] 8b27c04fec3a2429a6c4c088bc2a1c873ec45491 MythicLegendary 0 20 197 71 2023-06-10T02:16:06Z Pasadena 2 /* Static */ wikitext text/x-wiki [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name=MythicLegendary |image= |aliases=PowerCreator, PowerCreatorAnon |reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary] |discord= |youtube= |github= |email= |website= |cyoa_index= |other_social_media= }} MythicLegendary is an author who creates [[CYOA]]s. == CYOAs == === Static === MythicLegendary has made the following [[Static CYOA]]s: * [[Forced Basement Vacation CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FForced%20Basement%20Vacation%20CYOA link]) * [[Living God CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FLiving%20God%20CYOA link]) * [[Power Creator#New Pantheon|Power Creator - New Pantheon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20-%20New%20Pantheon%20CYOA link]) * [[Power Creator|Power Creator CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20CYOA link]) * [[Power Creator#Xenon|Power Creator Xenon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20Xenon%20CYOA link]) * [[Power Creator#Waifu|Power Creator Waifu]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPowerCreator%20Waifu%20CYOA link]) * [[Urban Phantom CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FUrban%20Phantom%20CYOA link]) * [[Essentials Meta CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8832 link]) * [[Metachain CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8828 link]) ==== Incomplete/WIP ==== MythicLegendary is rumoured to be working on the following: * [[CYOA Wiki Link]] ([https://external.site/cyoa link]) e8e40f3a2360ce97774d63b8b733797243d7584c File:13 1 per row.png 6 60 202 2023-06-10T02:26:06Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:14 3 per row.png 6 61 203 2023-06-10T02:26:40Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:15 4 per row.png 6 62 204 2023-06-10T02:26:57Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Interactive CYOA Tutorial 0 22 205 201 2023-06-10T02:28:13Z Pasadena 2 /* Objects Per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> <gallery mode="slideshow"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 094365d3dd6634403f7f7e4c5b62e0447efe6df0 206 205 2023-06-10T02:29:39Z Pasadena 2 /* Objects Per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 0f3f950e294f4d48fd5bf19ce82d2b13e2a502c8 207 206 2023-06-10T05:15:15Z Pasadena 2 /* Non-Activatable */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 306a1246b1fe92b63f38dbc237f65d4920e11de1 208 207 2023-06-10T05:15:44Z Pasadena 2 /* Selected Choices (Input) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 5669f78ddaecb5f309be2cb6955eb707f072bf41 209 208 2023-06-10T05:17:47Z Pasadena 2 /* Non-Activatable */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 0dc1f90c81168b7bf8cdb4eeb042b74a773285d9 210 209 2023-06-15T01:58:15Z Pasadena 2 /* IntCYOAEnhancer script */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see here for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and add the following line underneath <pre>// @match https://*.neocities.org/*</pre>: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 3cae9b49781928d40c900a65c01e34a0d4c45354 211 210 2023-06-15T01:59:57Z Pasadena 2 /* IntCYOAEnhancer script */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and add the following line underneath <pre>// @match https://*.neocities.org/*</pre> <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 9ff5ee699446a062cb314680c8ba96717bd968ee 212 211 2023-06-15T02:00:20Z Pasadena 2 /* Github and other sites compatibility */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 1742e6f58e5b183b1a1b2494ea905bec5109fe78 213 212 2023-06-15T02:08:10Z Pasadena 2 /* Installation */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list: {| class="wikitable" |+ User script managers by platform |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |- | '''Application''' || Example || Example || Example |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === a216dd077b7e7a631bd52bbf06ee321cb900db86 214 213 2023-06-15T02:13:50Z Pasadena 2 /* Installation */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list: {| class="wikitable sortable" |+ User script managers by platform |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || Example || Example |- | '''Opera''' || Example || Example || Example |- | '''Maxthon''' || Example || Example || Example |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || Example || Example || Example |- | '''UC''' || Example || Example || Example |- | '''Kiwi''' || Example || Example || Example |- | '''XBrowser''' || Example || Example || Example |- | '''Gear''' || Example || Example || Example |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 8a023d205fe6730b4eb9711e404c9cdd4b076191 215 214 2023-06-15T02:18:50Z Pasadena 2 /* Installation */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 116382e4af4ba1dcdbe8ca22ca5bc4de703e9ae7 216 215 2023-06-15T02:19:26Z Pasadena 2 /* Installation */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === === Custom Javascript === 2178ce4070a2158c5b441895ecfdd91c531b17f4 217 216 2023-06-15T02:41:43Z Pasadena 2 /* Custom HTML and CSS */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <h1>Heading 1</h1> || <pre><h1>Heading 1</h1></pre> |- | ''Italics'' || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) === Custom Javascript === 60446959ee7ec749928c50e10f0bba256b9b9984 218 217 2023-06-15T02:44:29Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | ''Italics'' || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) === Custom Javascript === a0661d240ea82953f859c129e55de83da87724db 219 218 2023-06-15T02:51:12Z Pasadena 2 /* Custom Javascript */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML and CSS === If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | ''Italics'' || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) 3c24d565f3f403c7e55b6efbf8b4858a4142bd74 220 219 2023-06-15T02:52:26Z Pasadena 2 /* Custom HTML and CSS */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | ''Italics'' || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) '''CSS:''' * '''Javascript:''' * '''All''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) ad6d8775a496af9733db5271cf281866b94682e0 221 220 2023-06-15T02:59:52Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | ''Italics'' || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |- | Example || Example |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) '''CSS:''' * '''Javascript:''' * '''All''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) 698f3c7d5b20f49255763984de58dcdb8ab47b11 222 221 2023-06-15T03:03:21Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |- | Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) '''CSS:''' * '''Javascript:''' * '''All''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) f03658301fcd76f9e197e48d8c5f9e4395e3b648 223 222 2023-06-15T03:13:11Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== General Formatting ===== {| class="wikitable" |- ! Example !! HTML |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) '''CSS:''' * '''Javascript:''' * '''All''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow) 2e74f3c810ba3914e6a8dd55b8cfdffef83fc81b 224 223 2023-06-15T03:16:35Z Pasadena 2 /* Learning Resources */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== General Formatting ===== {| class="wikitable" |- ! Example !! HTML |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) '''CSS:''' * '''Javascript:''' * '''All''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) cd3bf0f0897e06888586c40038339d42a7ef9fad 225 224 2023-06-15T03:17:43Z Pasadena 2 /* Learning Resources */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== General Formatting ===== {| class="wikitable" |- ! Example !! HTML |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 43d4eec0f62e1c0da169eae944c61a65269446e1 226 225 2023-06-15T03:18:21Z Pasadena 2 /* Custom HTML, CSS, and Javascript */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Text Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== General Formatting ===== {| class="wikitable" |- ! Example !! HTML |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 1d5f9473d27947fc323d25fd0afd426c5beda1a7 227 226 2023-06-15T03:18:53Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 35781b3dfbfcbe8901904b7b71cafd4e5b25c304 228 227 2023-06-15T03:23:23Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 1dd9a9482b6224d87cf2ea5146fc38864379b59c 229 228 2023-06-15T03:24:46Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 45a6e013ac8d5b57035e20162408fd77b6b86e20 230 229 2023-06-15T03:25:27Z Pasadena 2 /* Learning Resources */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) '''CSS:''' * '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 87abb71ac8f27bdd9bcb9a736d9e848adc023e61 231 230 2023-06-15T03:26:38Z Pasadena 2 /* Learning Resources */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) 07e15a42b943b86f0df7b180348f9c336a1f8eda 237 231 2023-06-15T03:59:07Z Pasadena 2 /* Learning Resources */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 2b992d31c325a406502af3c1048f88ee221a3fd2 238 237 2023-06-15T04:00:20Z Pasadena 2 /* Other Tutorials */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered here ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 96593862c8b3c70200a8cdb89150310441a44a58 239 238 2023-06-15T04:01:07Z Pasadena 2 /* Other Tutorials */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B a3e0c253073ca5ee618571a3d3676bbe22d89704 240 239 2023-06-15T04:02:01Z Pasadena 2 /* Useful links */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== The Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B a459e2a2bb970ac2a884ef5588ad1f64e34f87e7 241 240 2023-06-15T04:06:43Z Pasadena 2 /* The Creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Keeps track of the game state, meaning if you reload on accident you can keep your choices * Overview of selected choices and sections * Option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Allows for downloading project data * Cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 36ee5bce5ff8580575483dffc68d78680e860d75 242 241 2023-06-15T04:08:02Z Pasadena 2 /* IntCYOAEnhancer script */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Download option for <code>project.json</code> * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 9fe3945dc3a87b9d9a81719885006493a8f15593 243 242 2023-06-15T04:08:18Z Pasadena 2 /* IntCYOAEnhancer script */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * Download option for <code>project.json</code> * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 600f239b8b9eeab6c9a3e3d6ca0735742add151d 244 243 2023-06-15T04:08:43Z Pasadena 2 /* IntCYOAEnhancer script */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 2b07937460ae3a8d3ad162569f3c43113d34a7f6 245 244 2023-06-15T04:10:21Z Pasadena 2 /* Github and other sites compatibility */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 63838f65cf50bcd89e295a81c0493109381bbabb 246 245 2023-06-15T04:14:45Z Pasadena 2 /* Allowed Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 70ae92f06544dc75bac3aeb0fe59c8669beb760c 248 246 2023-06-15T04:19:11Z Pasadena 2 /* Allowed Choices */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes to be selected. From the Official Tutorial: <q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 14b7940314a412fc32c29887ddd4eac56294d3c9 250 248 2023-06-15T04:27:02Z Pasadena 2 /* Non-Activatable? */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the Official Tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B d8b74191a20a52729dfdd44268db90112175349d 251 250 2023-06-15T04:27:58Z Pasadena 2 /* Non-Activatable? */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== Explanation: More options for all choices in that row “Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width. “Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images. From the Official Tutorial: <q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q> ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 1f4836aad8823858372ec1305f1239addfa86709 Pasadena 0 14 232 74 2023-06-15T03:27:55Z Pasadena 2 Protected "[[Pasadena]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite)) wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena] |discord=Pasadena#9851 |youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena] |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ |other_social_media= }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) 4982b5556268737d09638d561e43ca86b9da848c 233 232 2023-06-15T03:28:11Z Pasadena 2 Changed protection settings for "[[Pasadena]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena] |discord=Pasadena#9851 |youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena] |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ |other_social_media= }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) 4982b5556268737d09638d561e43ca86b9da848c 234 233 2023-06-15T03:28:29Z Pasadena 2 Changed protection settings for "[[Pasadena]]" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki [[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena] |discord=Pasadena#9851 |youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena] |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ |other_social_media= }} Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s. == CYOAs == === Interactive === Pasadena has made the following Interactive CYOAs: * [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link]) * [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link]) * [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link]) * [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link]) ==== Incomplete/WIP ==== * [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link]) 4982b5556268737d09638d561e43ca86b9da848c Main Page 0 1 235 137 2023-06-15T03:29:58Z Pasadena 2 /* Interactive */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s. * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] fbf47978fc57e753d8f23e9b38ebc5e8b467d1f5 236 235 2023-06-15T03:30:09Z Pasadena 2 /* Interactive */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 0baf894ae450310fa0deec59667f1f416d871aa0 File:10b allowed choices.gif 6 63 247 2023-06-15T04:17:36Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:16 non activatable.gif 6 64 249 2023-06-15T04:26:44Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 CYOA Wiki:Editing 4 40 252 191 2023-06-15T04:33:29Z Pasadena 2 wikitext text/x-wiki == Text == === Quotes === Quotes can be added like so: <pre> Quote caption: :''Quote text'' </pre> == Images == === Image overflowing === If an image like a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre> === Get rid of image zoom and link === Simply add <pre>|link=</pre> to the end, making sure that the link is empty. <pre> <div class="res-img"> [[File:image.gif|link=]] </div> <div class="res-img">[[File:image.gif|link=]]</div> </pre> === Framed images overflowing === Simply add 'center' to them. <pre> <div class="res-img">[[File:image.png|frame|center|link=|The caption]]</div> </pre> cd5c389c0e59ed3e24a04b000fecbf7d02c63b6b Interactive CYOA Tutorial 0 22 253 251 2023-06-15T04:36:56Z Pasadena 2 /* Selected Choices? (Switch) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the Official Tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 5dd674396d16cb3070bdfa32b3a75df50ea7a6f6 254 253 2023-06-15T04:38:26Z Pasadena 2 /* Selected Choices? (Switch) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> '''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs. '''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. '''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 682d954dc2647a9949bdb23cc8b149cedb5beec5 255 254 2023-06-15T04:41:22Z Pasadena 2 /* Launching the creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== OPEN IMAGE-CYOA CREATOR ==== This is where you create interactive CYOAs. ==== OPEN IMAGE-CYOA VIEWER ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. ==== HELP AND INSTRUCTIONS ==== A small tutorial made by the author themself. It should be redundant with this tutorial. === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 16327ee6fef3420c2a05e8ee25d3720cc8fa8eb3 257 255 2023-06-15T05:25:12Z Pasadena 2 /* Launching the creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B a941951b37036b3a46b22cd71a0c2a27e7111425 258 257 2023-06-15T05:30:21Z Pasadena 2 wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Static Background === An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B d8004f6422bb581e6192a9e3e01ca3783965124f 259 258 2023-06-15T05:32:52Z Pasadena 2 /* Hiding Rows via Selected Choice */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== Github and other sites compatibility ==== This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Static Background === An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. === Custom HTML, CSS, and Javascript === If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''Javascript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 0318b382ce2ee4aeeacb3ddd5eac99828f109d22 260 259 2023-06-15T05:43:51Z Pasadena 2 Fixes wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Static Background === An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 6f6b681900b14c8fa51b4456335e1c8df530604a 261 260 2023-06-15T05:47:19Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B ecd395abef653dcd207f090ab063656841aa2d79 262 261 2023-06-15T05:51:16Z Pasadena 2 /* Backgrounds */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 07d771add6f41f7309132209526e7c7a4522264c 263 262 2023-06-15T05:54:47Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <!-- image --> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><nowiki><div id=app></div></nowiki></code> line. <syntaxhighlight lang="html> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B de9fd66171beef1c94a0757923e3e0311a000355 264 263 2023-06-15T05:57:18Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <!-- image --> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><nowiki><div id=app></div></nowiki></code> line. <syntaxhighlight lang="html> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 5219d8f3cdb2ca701039fef5b666d7bd7dda8555 265 264 2023-06-15T06:00:28Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:image.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></syntaxhighlight></nowiki></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 8c719ae2b9f6e05925e012e3c0197ed0f2220ce7 268 265 2023-06-15T06:06:37Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background_compressed.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 66020f871a03878d437222f710fa239482354d5e 269 268 2023-06-15T06:07:01Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 7863233c0b955598f8e0ebece681ed3d20eefcba 270 269 2023-06-15T06:10:19Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''Bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''Italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''Bold and Italicized''''' text || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | This is <sup>Superscript</sup> text || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | This is <sub>Subscript</sub> text || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | This is <big>Big</big> text || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | This is <small>Small</small> text || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | This is <u>Underlined</u> text || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | This is <mark>Highlighted</mark> text || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | This is <del>Deleted</del> text || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>Insreted</del><ins>Inserted</ins> text || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 884a2057d23b4bac1b63f262047dedcd141bd9fb 271 270 2023-06-15T06:11:12Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>Inserted</ins> text || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 1ef4befdc2e1c529f8d3e02be6e686764cb36495 272 271 2023-06-15T06:14:15Z Pasadena 2 /* Text Formatting */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== TODO ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B c60e7154bb2b61fb23670d82ca3cb900c80a09ba 273 272 2023-06-15T06:51:05Z Pasadena 2 /* 'Row' Objects per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B ac2deb50b417ea87a87527a21b0237309bf0e4b7 274 273 2023-06-15T06:51:36Z Pasadena 2 /* 'Row' Objects per Row */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Placement ==== Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B aa78ae6b7e802b8ff6148236e84344697ead972e 275 274 2023-06-15T06:53:35Z Pasadena 2 /* Templates/Image Placement */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 1c2638a8fe2c0e941bed4982687cb1493added22 276 275 2023-06-15T06:54:21Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#|here]] for more. === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 9f1b268a300cccb73f7ac157abda99108809c3b6 277 276 2023-06-15T06:56:24Z Pasadena 2 /* Saving Space */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#|here]] for more. === Text === === Filters === == Extending your CYOA == === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 21eb2304333799996494919f341545cf876cce26 278 277 2023-06-15T06:59:02Z Pasadena 2 /* Extending your CYOA */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#|here]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 8824bf3542478cd80ecc7ec565eab7214696af27 279 278 2023-06-15T06:59:30Z Pasadena 2 /* Static Background */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 7230e6175c12ca4a46dda1155562cec861cff117 280 279 2023-06-15T07:01:01Z Pasadena 2 /* Selected Choices? (Switch) */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 929a876a7ef3a6305054ed113b637136dc6f4020 283 280 2023-06-15T07:02:50Z Pasadena 2 /* Launching the creator */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. <div class="res-img">[[File:0c_viewer.png]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B cea46f3d2ca50ff4ed4971ec9beb3b99749a0d9f 284 283 2023-06-15T07:03:47Z Pasadena 2 /* Open Image-CYOA Viewer */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. </div><div class="res-img">[[File:0c_viewer.png|link=]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:.png]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 67d22ca0a8e9fdcd247ed6a3fab53c8164ecee9f 285 284 2023-06-15T07:04:02Z Pasadena 2 /* Help and Instructions */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. </div><div class="res-img">[[File:0c_viewer.png|link=]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:image.png|link=]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B abfa7a75dd418f17cd433bb91824bf9989810d10 287 285 2023-06-15T07:05:54Z Pasadena 2 /* Help and Instructions */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. </div><div class="res-img">[[File:0c_viewer.png|link=]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 8f8c0b78f22f162c44e7a6a578fe54e91f95d84e File:0b creator.png 6 65 256 2023-06-15T04:44:42Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:NA static background.gif 6 66 266 2023-06-15T06:03:21Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 267 266 2023-06-15T06:06:27Z Pasadena 2 Pasadena uploaded a new version of [[File:NA static background.gif]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:0bb full creator.png 6 67 281 2023-06-15T07:01:37Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:0c viewer.png 6 68 282 2023-06-15T07:02:34Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:0d help and instructions.gif 6 69 286 2023-06-15T07:05:47Z Pasadena 2 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 288 286 2023-06-15T07:09:34Z Pasadena 2 Pasadena uploaded a new version of [[File:0d help and instructions.gif]] wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 MediaWiki:Aboutsite 8 70 289 2023-06-15T07:38:58Z Pasadena 2 Created page with "{{SITENAME}} About and Rules" wikitext text/x-wiki {{SITENAME}} About and Rules a8e4f7dc887bc1bea6b742f5e14849d2217a5af9 290 289 2023-06-15T07:39:50Z Pasadena 2 wikitext text/x-wiki <!-- About {{SITENAME}} --> <!-- {{SITENAME}} About and Rules --> Rules and Guidelines 94582657bff4d92a916c4bac31cd03286168c5c1 MediaWiki:Disclaimers 8 71 291 2023-06-15T07:40:27Z Pasadena 2 Created page with "<!-- Disclaimers --> -" wikitext text/x-wiki <!-- Disclaimers --> - cb580113e7ccbbb8faaa36131efc9cf55ad4d2f2 292 291 2023-06-15T07:40:41Z Pasadena 2 Replaced content with "-" wikitext text/x-wiki - 3bc15c8aae3e4124dd409035f32ea2fd6835efc9 MediaWiki:Aboutpage 8 72 293 2023-06-15T07:41:24Z Pasadena 2 Created page with "<!-- Project:About --> Project:Rules and Guidelines" wikitext text/x-wiki <!-- Project:About --> Project:Rules and Guidelines 0547ddaf98ae0cc692c88a0fd5d240ff4e96a03e 294 293 2023-06-15T07:41:35Z Pasadena 2 wikitext text/x-wiki Project:Rules and Guidelines 38d6172e25c13318d1ad3e4795738778f3924928 CYOA Wiki:Rules and Guidelines 4 73 295 2023-06-15T07:55:51Z Pasadena 2 Created page with "These are the rules and guidelines you must follow when contributing to this Wiki. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use] # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy] ## Essentially: ### No direct commercial activity, linking to it is fine as long as it's not the main focus ### No content illegal in the United Kingdom ### No insults, hate, or rumours against a person or group..." wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use] # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy] ## Essentially: ### No direct commercial activity, linking to it is fine as long as it's not the main focus ### No content illegal in the United Kingdom ### No insults, hate, or rumours against a person or group of people ### The community must not become 'toxic'(repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations) ### '''No sexual material involving minors in <u>any way</u> on this site''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u> ### No promoting violence, hatred, or harassment against a person or group of people ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins) #### Explicit imagery, where possible, should be collapsed by default # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon) 3770696d19fa143b6e858be6e88cad6832d9ff7b 298 295 2023-06-15T08:02:54Z Pasadena 2 wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use] # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy] ## Essentially: ### No direct commercial activity, linking to it is fine as long as it's not the main focus ### No content illegal in the United Kingdom ### No insults, hate, or rumours against a person or group of people ### The community must not become 'toxic'(repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations) ### '''No sexual material involving minors in <u>any way</u> on this site''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u> ### No promoting violence, hatred, or harassment against a person or group of people ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins) #### Explicit imagery, where possible, should be collapsed by default # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon) == Guidelines == These are 'soft' rules, rules you don't have to follow, but it is recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there e41b5a700e948967193ba70751cea668d71ae990 Main Page 0 1 296 236 2023-06-15T07:57:06Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Rules_and_Guidelines|Rules_and_Guidelines]] * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] b9c08e115d880fbf8ef5591338f9864f553c0d09 297 296 2023-06-15T07:57:20Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]] * [[CYOA_Wiki:Manual of Style|Manual of Style]] * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 6ada04c3cb8bbec3c0fe7e3a4bb85c77d7af04fe CYOA Wiki:Manual of Style 4 16 299 84 2023-06-15T08:06:57Z Pasadena 2 /* Language */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown, use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him'''. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 673319c41382d6a61176caf27627d8b1ff05204a 300 299 2023-06-15T08:09:20Z Pasadena 2 /* Pronouns */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them/their/theirs/themself (or themselves)''' rather than the masculine default '''he/him/his/himself''' to refer to them. '''Always''' prefer they/them to '''he or she''' (or vice versa), as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 9387d7f2d9c9ad2755c6f5d403f00229b1b2795c 301 300 2023-06-15T08:09:43Z Pasadena 2 /* Pronouns */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer they/them to '''he or she''' (or vice versa), as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 136915b4e36f002bb9c4be227985bbd3a26f2ec6 302 301 2023-06-15T08:10:11Z Pasadena 2 /* Pronouns */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. a06b3388522c215691b6c46cda0c8823b060e43a CYOA Wiki:Rules and Guidelines 4 73 303 298 2023-06-15T08:17:10Z Pasadena 2 /* Rules */ wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### No content illegal in the United Kingdom. ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki. ## This does not include discussion about said topics, merely promoting it == Guidelines == These are 'soft' rules, rules you don't have to follow, but it is recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there 640e142622d81fc16afaea2a4c809b5a7756e460 304 303 2023-06-15T08:18:46Z Pasadena 2 wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### No content illegal in the United Kingdom. ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki. ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. 8fcfeedfc1b2e2a367daa1e0b604262f62f40e5d 311 304 2023-06-15T09:10:01Z Pasadena 2 /* Rules */ wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### '''No content illegal in the United Kingdom.''' ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. c85cf4ee5d0fef35ec82ff0436f3286b09f0d84d 312 311 2023-06-15T09:10:26Z Pasadena 2 wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### '''No content illegal in the United Kingdom.''' ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. == References == <references /> 15cf7211923d4f89d4e38a106fdc81e5c3163998 313 312 2023-06-15T09:10:48Z Pasadena 2 Protected "[[CYOA Wiki:Rules and Guidelines]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### '''No content illegal in the United Kingdom.''' ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. == References == <references /> 15cf7211923d4f89d4e38a106fdc81e5c3163998 314 313 2023-06-15T09:13:22Z Pasadena 2 /* Rules */ wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. ## Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### '''No content illegal in the United Kingdom.''' ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.''' ### No promoting violence, hatred, or harassment against a person or group of people. ### NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. == References == <references /> c59d144ae9fce63a0be86f3ad26869be20cfcd2d 315 314 2023-06-15T09:20:01Z Pasadena 2 /* Rules */ wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. #* Essentially: ### No direct commercial activity. Linking to it is fine as long as it's not the main focus. ### '''No content illegal in the United Kingdom.''' ### No insults, hate, or rumours against a person or group of people. ### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). ### '''No sexual material involving minors in <u>any way</u> on this site.''' #### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. ##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.''' ### No promoting violence, hatred, or harassment against a person or group of people. ##* NSFW rules: #### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #### Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' ## This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. == References == <references /> fe627fb4d334599e64498d16d079b46fff03048d 318 315 2023-06-16T02:57:23Z Pasadena 2 /* Rules */ wikitext text/x-wiki These are the rules and guidelines you must follow when contributing to this Wiki. == Rules == You absolutely '''must''' follow these rules. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]. #* Essentially: #*# No direct commercial activity. Linking to it is fine as long as it's not the main focus. #*# '''No content illegal in the United Kingdom.''' #*# No insults, hate, or rumours against a person or group of people. #*# The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations). #*# '''No sexual material involving minors in <u>any way</u> on this site.''' #*#* References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>. #*#** United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.''' #*# No promoting violence, hatred, or harassment against a person or group of people. #** NSFW rules: #**# No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins). #**# Explicit imagery, where possible, should be collapsed by default. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy]. # If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon). # '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.''' #* This does not include discussion about said topics. == Guidelines == These are 'soft' rules, rules that you don't have to follow, but are recommended to. # When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there. == References == <references /> 03112d577119d5f17f3ac6083f8255fa53e6c3bf CYOA Wiki:Manual of Style 4 16 305 302 2023-06-15T08:20:59Z Pasadena 2 /* Timezone */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. fa11062069ab0ce534f5287749839b196a841644 306 305 2023-06-15T08:21:24Z Pasadena 2 /* Format */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 4895d4eb671628778fd972f4a05a725dd6bf49d4 307 306 2023-06-15T08:22:33Z Pasadena 2 /* Date Format */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 230c26e7dab4d9447d6d10b470eb487a05d4fb92 308 307 2023-06-15T08:23:13Z Pasadena 2 /* Interactive Articles */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Pronouns === When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. A standalone static or interactive is fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. f43f2362109ede91090916b6027525f3cd1cd630 309 308 2023-06-15T08:58:16Z Pasadena 2 /* Language */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Word choice === ====Pronouns ==== When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. === Punctuation === * Use the [[wikipedia:Oxford comma|Oxford comma]] ** Do this: Tom, Dick, and Harry ** Don't do this: Tom, Dick and Harry == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. A standalone static or interactive is fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 8e3793ae1b855e87b3886686fea34f0ebb80fe44 310 309 2023-06-15T08:58:37Z Pasadena 2 /* Punctuation */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Word choice === ====Pronouns ==== When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. === Punctuation === * Use the [[wikipedia:Oxford comma|Oxford comma]] ** '''Do this:''' Tom, Dick, and Harry ** Don't do this: Tom, Dick and Harry == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. A standalone static or interactive is fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. fa7ab315349569883ef7d94f6e2f4a60068c485a 319 310 2023-06-16T02:59:20Z Pasadena 2 /* Punctuation */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Word choice === ====Pronouns ==== When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. === Punctuation === Use the [[wikipedia:Oxford comma|Oxford comma]]: ** '''Do this:''' Tom, Dick, and Harry ** Don't do this: Tom, Dick and Harry == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. A standalone static or interactive is fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 12adc19565cb5c9b44aeb65e53febb05f596f0d7 320 319 2023-06-16T02:59:33Z Pasadena 2 /* Punctuation */ wikitext text/x-wiki == Language == This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings. The most important thing is being consistent, so if an article is written in another variety of English, continue to use that. === Word choice === ====Pronouns ==== When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them. '''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people. === Punctuation === Use the [[wikipedia:Oxford comma|Oxford comma]]: * '''Do this:''' Tom, Dick, and Harry * Don't do this: Tom, Dick and Harry == Articles/Pages == === Titles === CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not. === Interactive Articles === CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. A standalone static or interactive is fine to have its own page. == Date and time == === Timezone === The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it. === Time Format === Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''. === Date Format === When writing in long form, write like '''20 July 1981'''. When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''. 757f6af841ab48b22645504cab329d193d968be1 Main Page 0 1 316 297 2023-06-15T09:28:26Z Pasadena 2 /* Contributing */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * Before editing, please read the [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]] * See the [[CYOA_Wiki:Manual of Style|Manual of Style]] for the style guide for this wiki * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] 987dd31b584e978cf1a1856b7f4bd4b02da72479 317 316 2023-06-15T09:30:11Z Pasadena 2 /* Quick Start */ wikitext text/x-wiki __NOTOC__ == Welcome to the {{SITENAME}}! == This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein. == What are CYOAs? == A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand. == Quick Start == <div style="column-count: 2"> * [[:Category:CYOAs|CYOAs]] ** By medium: *** [[:Category:Static CYOAs|Static CYOAs]] *** [[:Category:Interactive CYOAs|Interactive CYOAs]] ** By category: *** [[:Category:Fantasy CYOAs|Fantasy CYOAs]] *** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc *** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc *** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc *** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc *** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]] *** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi * [[:Category:Authors|Authors]] ** [[:Category:Static Authors|Static Authors]] ** [[:Category:Interactive Authors|Interactive Authors]] * [[:Category:Lore|Lore]] * [[:Category:Characters|Characters]] * [[:Category:Locations|Locations]] </div> == Helpful Links == * [https://www.reddit.com/r/makeyourchoice r/makeyourchoice] * [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA] * [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources] * [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs) == Tutorials == === Static === * [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide] * [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info] * [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials] === Interactive === * [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s) * [https://imgur.com/a/QV36Ix8 Neocities Setup #1] * [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2] == Contributing == Want to contribute to this wiki? See the articles below. * Before editing, please read the [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]] * See the [[CYOA_Wiki:Manual of Style|Manual of Style]] for the style guide for this wiki * [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips * [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]] * [[Special:Categories|Categories]] * Upload images at [[Special:Upload]] * Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]] bbcc013302416ac5eeac9f16c6b1f16256d7a9b2 Interactive CYOA Tutorial 0 22 321 287 2023-06-16T03:02:51Z Pasadena 2 /* Filters */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. </div><div class="res-img">[[File:0c_viewer.png|link=]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === === Private Styling === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B f85aa5f57f20af39232c596533c9e15d50dcda59 322 321 2023-06-16T03:03:33Z Pasadena 2 /* Cloning Rows */ wikitext text/x-wiki This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]]. == Introduction == === Useful links === ==== Interactive CYOA Creator ==== * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)] ==== Subreddits ==== * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here! * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) ==== Other Tutorials ==== * [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]] ** [https://imgur.com/a/QV36Ix8 Imgur] ** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides] * [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)] === Launching the creator === When you launch the creator, you will be greeted with this screen: <div class="res-img"> [[File:0a_start.png|link=]] </div> ==== Open Image-CYOA Creator ==== This is where you go to create [[Interactive CYOA]]s. When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]]. <div class="res-img">[[File:0b_creator.png|link=]]</div> This is what a complete CYOA would look like in this menu: <div class="res-img">[[File:0bb_full_creator.png|link=]]</div> ==== Open Image-CYOA Viewer ==== This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s. </div><div class="res-img">[[File:0c_viewer.png|link=]]</div> ==== Help and Instructions ==== A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway. <div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div> === The Sidebar === == Basics == === Rows === The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist. ==== Creating Rows==== Create a row by opening up the sidebar and pressing '''Create New Row'''. <div class="res-img"> [[File:1_creating_a_row.gif|link=]] </div> ==== Cloning Rows ==== To clone a row, press the [[File:2_clone_button.png|30px|link=]] button. Cloning rows can be useful when you have [[#Private_Styling|private styling]] or a specific set of choices you need to repeat. <div class="res-img">[[File:4_clone_row.gif|link=]]</div> ==== Deleting Rows ==== To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''. <div class="res-img">[[File:5_delete_row.gif|link=]]</div> ==== Editing a Row ==== To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]]. This will open the edit menu for the row. <div class="res-img">[[File:7_edit_row.gif|link=]]</div> ==== Row Title ==== By default, the row title will be '''Row'''. As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent. To edit the row title, simply edit the text in the '''Row Title''' section. <div class="res-img">[[File:8_row_title.gif|link=]]</div> ==== Row Text ==== Row Text can be used to provide a description of the section. You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option. To edit the row text, simply edit the text in the '''Row Text section'''. <div class="res-img">[[File:9_row_text.gif|link=]]</div> ==== Allowed Choices ==== The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28). If you want ANY number of options with no limits, simply put <code>0</code> into the field. This is used for sections where you might say "You may only take X options". There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]). <div class="res-img">[[File:10_allowed_choices.png|link=]]</div> ---- <div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div> ==== Selected Choices (Input) ==== The 'Selected Choices' will show how many choices are currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.''' If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0. <div class="res-img">[[File:11_selected_choices.gif|link=]]</div> ==== Objects Per Row ==== The '''Objects Per Row''' option allows you to determine how many choices are present within a row. <div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div> '''Preview:''' <gallery mode="slideshow" caption="Objects Per Row preview"> 13_1_per_row.png|link=|1 per Row 14_3_per_row.png|link=|3 per Row 15_4_per_row.png|link=|4 per Row </gallery> ===== 'Row' Objects per Row ===== Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>). Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once. If you have changed an individual Choice's width, then setting back to Row resets it back to the default. ==== Non-Activatable? ==== For when you just want to supply information and don’t want those information boxes (choices) to be selected. From the official tutorial: :''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.'' <div class="res-img">[[File:16_non_activatable.gif|link=]]</div> ==== Selected Choices? (Switch) ==== The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row. From the official tutorial: :<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i> <div class="res-img">[[File:image.gif|link=]]</div> ===== Selected Choices from Group Id ===== ===== Deselect choices when Row lacks requirements? ===== ===== Choices will all be 'Template Top' and Row Width ===== This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization). ===== Remove the text of the choices ===== This option removes the body text of all the choices within the row, but keeps the title and images. ===== Show the title of the row in the choice. ===== ==== Half of the Screen? ==== For when you want two rows side by side. ==== Row List (Side Menu) ==== This can be useful when moving rows over a lot of other rows. ==== Sort The Choices In The Row (Row Settings) ==== This can be useful. === Choices / Objects === Choices (also called Objects by the creator) are individual options that can be selected by the player. ==== Creating Choices ==== ==== Cloning and Deleting Choices ==== Same as with rows. ==== Resetting choices ==== If you've accidentally activated choices, you can reset them using the following methods: ==== Object Width ==== For sizing your section. ==== Functions ==== ===== Selecting this choice will deselect other choices ===== very dangerous but useful ===== This choice can be selected multiple times ===== Use simply variable instead of a point type in almost all situations ===== Selecting this choice will be impossible ===== Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy ===== Forces another choice active ===== Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID). ===== Will make another choice unselected ===== The opposite of forcing one active, this forcibly deactivates it ===== Adds or takes away a rows Allowed Choices ===== Can be used to dynamically change what a rows Allowed Choices are. Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices. ==== Clean Selected Choices (Side Menu) ==== === IDs & Requirements === ==== IDs – Unique Identifiers ==== What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups. They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are. '''It is strongly suggested that you change default IDs.''' ==== Requirements ==== ===== Selected choice ===== if x == true ===== Non-selected choice ===== if x != true ===== ‘One of these is selected’ requirement ===== OR ===== ‘None of these is selected’ requirement ===== XOR? ===== Doing multiple selected choices ===== AND ===== Doing multiple non-selected choices ===== NOR ==== Hiding Rows via Selected Choice ==== ===== Nested Rows ===== Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this]. :''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.'' ==== Disabled Choices via Selected Choice ==== Hiding choices using filters – almost always use private styling ==== Navigation with ID / Title list ==== ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor ==== Reusing IDs ==== Interesting fact: Setting multiple things to the same ID allows you to activate one through the other === Points & Scores === ==== Creating Points ==== ===== Names ===== ===== Starting Sum ===== ===== The Power of Hidden Point Types ===== '''This score is not allowed to go under 0''' I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select ===== +/- Score Signs ===== '''Add a + or - in front of the scores''' ===== Positive/Negative Colours ===== '''Set colors for positive or negative''' ===== Score Icon ===== ===== Hide Point Types ===== ID needed to show ==== Scores ==== ===== Adding Scores ===== ===== Subtract Points ===== This is the default behaviour. ===== Add Points ===== ===== Text Before ===== Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points. ===== Show Score? ===== This can be used to hide mechanics, or if the image shows the points already. ===== Requirements and Discounts ===== Discounts can be made using requirements. === Images === It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues. ==== Local vs External Images ==== There are pros and cons to using both local and external images for choices. {| class="wikitable" |+ Local vs External Images |- ! Image type !! Pros !! Cons !! Use case |- | '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB) |- | '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB) |} ==== Local Images ==== ==== External Images ==== ===== Image host sites ===== Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed. '''Public''' * [https://imgur.com/ Imgur] '''Private''' * Discord (open image preview → '''Open in Browser''' to get the link) ==== Cropping ==== ===== Aspect Ratios ===== These are useful for consistent image sizes between choices. ==== Templates/Image Position ==== Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are: * '''Image Left''' – Places image to the left * '''Image Right''' – Places image to the right There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option. ==== Image Compression ==== === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === '''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: # Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below) # Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA. '''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either # Go to each of those sections for each change you make, and change the private styling, or # Turn off private styling to reset the styling, then reapplying the private style options for each section. === Style Templates === === Colour Palettes === === Backgrounds === ==== Static Background ==== See [[#Making a Static Background]] for more. === Text === === Filters === === Private Styling === == Extending your CYOA == Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more. === Making a Table of Contents (Tabs Menu) === === Progress Indicator === By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all. === IntCYOAEnhancer script === The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here]. Some of the features of this script include: * A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not) * Game state tracking, meaning if you reload on accident you can keep your choices * An overview of selected choices and sections * An option to enable the backpack (where you can export your choices for import again) if it's not already enabled * A download option for any interactive's <code>project.json</code> file * A cheat engine to change points ==== Installation ==== To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''. Here is a mirrored list (warning: may not be up to date): {| class="wikitable sortable" |+ User script managers by platform and application |- ! Application !! Desktop !! Mobile (Android) !! Mobile (IOS) |- | '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || || |- | '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || |- | '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] |- | '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || || |- | '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| || |- | '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || |- | '''Adguard''' || (no additional software required) || ← || ← |- | '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] || |- | '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] || |- | '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || |- | '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) || |- | '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required) |} ==== GitHub and other sites compatibility ==== This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well. To edit this, after installing, open up the extension, and underneath this: <pre>// @match https://*.neocities.org/*</pre> Add this line: <pre> // @match https://*.github.io/* </pre> The asterisk means "match anything that comes here". === Making a Static Background === A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly. An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position. It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344]. <div class="res-img">[[File:NA_static_background.gif|link=]]</div> To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line. <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> This is the same code where the progress indicator is located, so if you wanted both it would look like this: <syntaxhighlight lang="html" line> <div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () { super(); this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)}); this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"}); }}}</script></div> </syntaxhighlight> === Saving Space === Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users. ==== Compress Images ==== See [[#Image Compression]]. ==== Use URLs for Images ==== The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using. See how to do this at [[#External_Images]]. === Custom HTML, CSS, and JavaScript === If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA. ==== Formatting ==== To format text within the CYOA, use these HTML tags: ===== Headings ===== {| class="wikitable" |- ! Example !! HTML |- | <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight> |- | <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight> |- | <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight> |- | <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight> |- | <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight> |- | <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight> |} ===== Text Formatting ===== {| class="wikitable" |- ! Example !! HTML !! Notes |- |- | This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold. |- | This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning. |- | This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight> |- | This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight> |- | This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight> |- | This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight> |- | This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight> |- | This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight> |- | This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight> |- | This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed. |- | This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text. |} ===== Lists ===== ==== Learning Resources ==== There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process. Here are some free resources you can try: '''HTML:''' * [https://www.programiz.com/html Programiz] (Easy to understand) * [https://www.w3schools.com/html/default.asp W3Schools] '''CSS:''' * [https://www.w3schools.com/css/default.asp W3Schools] '''JavaScript:''' * [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive) * [https://www.w3schools.com/js/default.asp W3Schools] '''Multiple''': * [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners) * [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only) == The End == You're finished! B 6d410182ded23712ba8511f99a5ac36eeaa60c9e